import java.util.Scanner;

public class demo {

    //    最近公共祖先
//    将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号，根结点编号为1。
//    现给定a，b为两个结点。设计一个算法，返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。
//    节点/2就是祖先的值
    public class LCA {
        public int getLCA(int a, int b) {
            while (a != b) {
                if(a > b) {
                    a = a/2;
                }else {
                    b = b/2;
                }
            }
            return a;
        }
    }


    //    求最大连续bit数
//    描述
//求一个int类型数字对应的二进制数字中1的最大连续数，例如3的二进制为00000011，最大连续2个1
//O(1)
//输入描述：
//输入一个int类型数字
//输出描述：
//输出转成二进制之后连续1的个数
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int count = 0;//记入连续1的个数
        int max = 0;//记入最大连续1的个数
        while (n != 0) {
            if((n&1) == 1) {
                count++;
            }else{
                count = 0;
            }
            if(max < count) {
                max = count;
            }
            n = n>>>1;
        }
        System.out.println(max);
    }
}

